package com.lu.service;

import com.github.pagehelper.Page;
import com.lu.model.entity.SysApprovalConfig;
import com.lu.model.entity.SysApprovalLog;
import com.lu.model.domain.ProcessApprovalLog;
import com.lu.model.domain.ProcessApprovalWaitList;
import com.lu.model.request.ProcessApprovalUpdateInfoRequest;
import com.lu.model.request.ProcessApprovalQueryRequest;
import com.lu.model.request.ProcessApprovalSubmitRequest;

import java.util.List;
import java.util.Map;

/**
 * @Description: 审批流程
 * @Author: zhanglu
 * @Date: 2022/8/1 11:40
 */
public interface SysApprovalService {

  Map<String, SysApprovalConfig> refreshConfig();

  List<SysApprovalConfig> configList();

  String submit(ProcessApprovalSubmitRequest request);

  <T> T updateInfo(ProcessApprovalUpdateInfoRequest request);

  Page<ProcessApprovalLog> pageList(ProcessApprovalQueryRequest request);

  List<ProcessApprovalWaitList> waitList(ProcessApprovalQueryRequest request);

  List<SysApprovalLog> detail(ProcessApprovalQueryRequest request);

  <T> T get(ProcessApprovalQueryRequest request);

}
